//
//  LCTitleButton.swift
//  SwiftWeiBo
//
//  Created by LiCheng on 2017/2/15.
//  Copyright © 2017年 LiCheng. All rights reserved.
//

import UIKit

class LCTitleButton: UIButton {

    /// 重载构造函数
    /// - title 如果为 nil，没登录显示 “首页”
    /// - 如果不为 nil，显示 title 和箭头图像
    init(title:String?) {

        super.init(frame: CGRect())

        // 1. 判断是否有 title
        if title == nil { // 登录前

            setTitle("首页", for: .normal)

        }else{ // 登录后

            setTitle(title! + " ", for: .normal)

            setImage(UIImage(named: "navigationbar_arrow_down"), for: .normal)
            setImage(UIImage(named: "navigationbar_arrow_up"), for: .selected)
        }

        // 2. 字体和颜色
        titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
        setTitleColor(UIColor.darkGray, for: .normal)

        // 3. 布局
        sizeToFit()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }


    /// 重新布局子视图
    override func layoutSubviews() {

        super.layoutSubviews()

        guard let titleLabel = titleLabel,
            let imageView = imageView
        else {
            return
        }

        // 将 label 的x 向左移动 imageView 的宽度
        titleLabel.frame = titleLabel.frame.offsetBy(dx: -imageView.bounds.width, dy: 0)

        // 将 imageView 向右移动 label 的宽度
        imageView.frame = imageView.frame.offsetBy(dx: titleLabel.bounds.width, dy: 0)
    }

}
